iT邦幫忙

0

Android Studio RecyclerView

  • 分享至 

  • xImage
  •  

RecyclerView比ListView更高階且更具靈活性
此元件是一個用於顯示龐大資料集的容器,可通過保持有限數量的檢視進行非常有效的滾動操作
白話一點就是 可以滾動的清單,內容可隨時變更,

1.添加依賴

dependencies {
  implementation "androidx.recyclerview:recyclerview:1.2.1"
  implementation "androidx.recyclerview:recyclerview-selection:1.1.0"
 }

2.在主要顯示的mxl 添加元件

        <androidx.recyclerview.widget.RecyclerView
            android:id="@+id/recycleview"
            android:layout_width="200dp"
            android:layout_height="200dp"
/>
  1. 在Layout資料夾底下 添加xml檔案 //這xml檔案,也可以說是排版,你RecyclerView顯示出來的模塊的版面模樣
    https://ithelp.ithome.com.tw/upload/images/20210704/20137519UxFnOGPjd6.jpg

  2. 還需要一個Adapter來調配
    這個Adapter 必須繼承 RecyclerView.Adapter
    我是覺得這有點不好吸收, 白話文就是 : 我要實現RecyclerView.Adapter的一個類別來複寫與設定

private class MyListAdapter extends RecyclerView.Adapter<MyListAdapter.ViewHolder>{}

  1. 延續第四點 我的MyListAdapter 會Override 三個方法
    分別是
        @NonNull
        @Override
        public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
            View view = LayoutInflater.from(parent.getContext())
                    .inflate(R.layout.recycle_item,parent,false);
            return new ViewHolder(view);
        }
        
        @Override  //從這裡面變更設定內容 引用holder.裡面 finID的資料修改
        public void onBindViewHolder(@NonNull ViewHolder holder, int position) {
//            holder.tvId.setText(arrayList.get(position).get("Id"));
//            holder.tvSub1.setText(arrayList.get(position).get("Sub1"));
//            holder.tvSub2.setText(arrayList.get(position).get("Sub2"));
        }

        @Override   //顯示條列
        public int getItemCount() {
            return 8;
        }
    }

6.再延續第四點 我的MyListAdapter 還需要內部類別 class ViewHolder extends RecyclerView.ViewHolder{}
冷靜點 已經沒有再延伸了 , 規整出來就是MyListAdapter 有三個方法跟一個內部類別 這樣記就好了

       class ViewHolder extends RecyclerView.ViewHolder{
            private TextView tvId,tvSub1,tvSub2,tvAvg;

            //這裡綁定ID 注意綁定語法不一樣
            public ViewHolder(@NonNull View itemView) {
                super(itemView);

//                tvId = itemView.findViewById(R.id.textView_Id);
//                tvSub1 = itemView.findViewById(R.id.textView_sub1);
//                tvSub2 = itemView.findViewById(R.id.textView_sub2);
//                tvAvg  = itemView.findViewById(R.id.textView_avg);

            }
  1. OK 前置作業已完成~ 接下來要來撰寫Main裡面的code了
    先來 宣告找依賴
RecyclerView mRecyclerView;
MyListAdapter myListAdapter;
mRecyclerView = findViewById(R.id.recycleview);
//忘了說 還需要一個 Manager來設定 
mRecyclerView.setLayoutManager(new LinearLayoutManager(this));
myListAdapter = new MyListAdapter();
mRecyclerView.setAdapter(myListAdapter);

這樣最基本的RecycleLayout就能執行了


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言